#include <stdio.h>
#include <riscv_vector.h>

void vector_add_e32m1(uint32_t *c, uint32_t *a, uint32_t *b, int n) {
	while (n > 0) {
		int vl = __riscv_vsetvl_e32m1(n);
		// printf("n=%d, vl=%d\n", n, vl);
		vuint32m1_t vb = __riscv_vle32_v_u32m1(b, vl);
		vuint32m1_t va = __riscv_vle32_v_u32m1(a, vl);
		vuint32m1_t vc = __riscv_vadd_vv_u32m1(va, vb, vl);
		__riscv_vse32_v_u32m1(c, vc, vl);
		a += vl; b += vl; c += vl; n -= vl;
	}
}
